home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-09-15 | 1.4 KB | 81 lines | [TEXT/PJMM] |
- program test_Litetrace;
- uses
- LightTrace;
-
- var
- i, j: integer;
-
-
- procedure Decompose (Num: integer); { factor Num, report smallest factors first }
- var
- i, factor: integer;
-
- function check (factor: integer): BOOLEAN;
- begin
- if (Num div factor) * factor = Num then
- check := true
- else
- check := false;
- end;
-
- begin
- write(IntOf(Num), '=1');
- while check(2) and (Num > 1) do
- begin
- write('*2');
- Num := Num div 2;
- end;
- factor := 3;
- while (Num > 1) do
- begin
- while check(factor) and (Num > 1) do
- begin
- write('*', IntOf(factor));
- Num := Num div factor;
- end;
- factor := factor + 2;
- end;
- writeln;
- end;
-
- procedure Reduce (var numerator, denominator: INTEGER); {reduces fraction to lowest terms}
- var
- commonDivisor: INTEGER;
-
- function GCD (m, n: INTEGER): INTEGER;
- var
- r: INTEGER;
- begin
- writeComment(concat('GCD ', IntOf(m), ' ', IntOf(n)));
- r := m mod n;
- if r = 0 then
- GCD := n
- else
- GCD := GCD(n, r)
- end;{ funct GCD }
-
- begin { proc reduce }
- commonDivisor := GCD(numerator, denominator);
- numerator := numerator div commonDivisor;
- denominator := denominator div commonDivisor;
- end; { proc reduce }
-
-
-
- begin
- showtext;
- InitTracing;
-
- StartTracing(false, true, true);
-
- decompose(1 * 2 * 3 * 4 * 5);
-
- i := 1 * 2 * 3 * 4 * 5;
- j := 6 * 7 * 8 * 9;
- write(IntOf(i), '/', IntOf(j), '=');
- reduce(i, j);
- writeln(IntOf(i), '/', IntOf(j));
-
- EndTracing;
-
- end.